package com.zaimokuza.cn.config;

import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.teaopenapi.models.Config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 短信服务配置类
 * <p>
 * 在阿里云获取AccessKeyId和AccessKeySecret
 * AccessKeySecret只有在创建AccessKey时展示，记得保存使用
 * 如果使用子用户的AccessKey，请注意开通短信相关权限
 *
 * @author zaimokuza
 */
@Slf4j
@Configuration
public class SmsConfig {

    @Bean(name = "smsClient")
    public Client smsClient(@Value("${sms.access.key.id}") String accessKeyId,
                            @Value("${sms.access.key.secret}") String accessKeySecret) {
        // 初始化客户端对象
        Client smsClient = null;
        try {
            // 创建配置
            Config config = new Config().setAccessKeyId(accessKeyId).setAccessKeySecret(accessKeySecret);
            // 访问的域名
            config.endpoint = "dysmsapi.aliyuncs.com";
            // 通过配置创建短信客户端
            smsClient = new Client(config);
            // 日志
            log.info("=====阿里云短信服务初始化完成=====");
        } catch (Exception e) {
            // 捕获异常并打印错误信息
            log.error("阿里云短信服务初始化失败：" + e.getMessage(), e);
        }
        // 返回
        return smsClient;
    }

}
